In a runtime environment, it is desirable to monitor and manage the executable code loaded in memory for various logical objects, because if the memory space occupied by the objects exceeds a certain threshold, system performance may suffer.
Self-healing software systems may be designed to overcome such problems and to improve overall system behavior by monitoring system performance and providing a solution to the detected problems. While the current self-healing systems can monitor certain runtime events to detect one or more problems, such systems cannot obtain sufficient information about the events or the context within which the problems arise to provide an optimized solution.
Therefore, self-healing methods and systems are needed that can overcome the aforementioned shortcomings by providing means to understand the nature of the detected events and the context in which the problems arise, so that an optimized solution can be selected.